package thread;

/**
 * 第一种创建线程的方式优点时结构简单，适合使用匿名内部类形式创建
 *
 * 缺点：
 * 1：由于java是单继承的，这导致如果继承Thread就无法在继承其它类，实际开发
 * 中很不方便
 * 2：定义线程的同时重写了run方法将线程的任务定义在了线程中，导致线程与任务存在
 * 一个必然的耦合关系，不利于线程的重用
 */
public class ThreadDemo1 {
    public static void main(String[] args) {
        Thread t1 = new MyThread1();
        Thread t2 = new MyTherad2();
        /*
            注意，启动线程要调用start方法，而非直接调用run方法。
            当start调用后，线程便纳入到线程调度器中统一管理，当第一次获取
            时间片时线程的run方法会被自动调用
         */
        t1.start();
        t2.start();
    }
}

class MyThread1 extends Thread{
    public void run(){
        for (int i = 0; i < 10000; i++) {
            System.out.println("你是谁啊");
        }
    }
}

class MyTherad2 extends Thread{
   public void run(){
       for (int i = 0; i < 10000; i++) {
           System.out.println("小伙子");
       }
   }
}